home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 June: Reference Library / Dev.CD Jun 95 / Dev.CD Jun 95.toast / What's New? / New System Software Extensions / QuickDraw 3D ß / Programming / Interfaces / QD3DStyle.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-04  |  7.9 KB  |  290 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DStyle.h                                                 **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Style types and routines                                  **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1995 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifndef QD3DStyle_h
  15. #define QD3DStyle_h
  16.  
  17. #if PRAGMA_ONCE
  18.     #pragma once
  19. #endif
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif    /* __cplusplus */
  24.  
  25.  
  26. /******************************************************************************
  27.  **                                                                             **
  28.  **                    Style Base Class Routines                                 **
  29.  **                                                                             **
  30.  *****************************************************************************/
  31.  
  32. EXPORT TQ3ObjectType Q3Style_GetType(
  33.     TQ3StyleObject            style);
  34.  
  35. EXPORT TQ3Status Q3Style_Submit(
  36.     TQ3StyleObject            style, 
  37.     TQ3ViewObject            view);
  38.  
  39.  
  40. /******************************************************************************
  41.  **                                                                             **
  42.  **                                 Subdivision                                 **
  43.  **                                                                             **
  44.  *****************************************************************************/
  45.  
  46. typedef enum TQ3SubdivisionMethod {
  47.     kQ3SubdivisionMethodConstant,
  48.     kQ3SubdivisionMethodWorldSpace,
  49.     kQ3SubdivisionMethodScreenSpace
  50. } TQ3SubdivisionMethod;
  51.  
  52.  
  53. typedef struct TQ3SubdivisionStyleData {
  54.     TQ3SubdivisionMethod            method;
  55.     float                            c1;
  56.     float                            c2;
  57. } TQ3SubdivisionStyleData;
  58.  
  59.  
  60. EXPORT TQ3StyleObject Q3SubdivisionStyle_New(
  61.     const TQ3SubdivisionStyleData    *data);
  62.  
  63. EXPORT TQ3Status Q3SubdivisionStyle_Submit(
  64.     const TQ3SubdivisionStyleData    *data,
  65.     TQ3ViewObject                    view);
  66.  
  67. EXPORT TQ3Status Q3SubdivisionStyle_SetData(
  68.     TQ3StyleObject                    subdiv,
  69.     const TQ3SubdivisionStyleData    *data);
  70.  
  71. EXPORT TQ3Status Q3SubdivisionStyle_GetData(
  72.     TQ3StyleObject                    subdiv,
  73.     TQ3SubdivisionStyleData            *data);
  74.  
  75.  
  76. /******************************************************************************
  77.  **                                                                             **
  78.  **                                Pick ID                                         **
  79.  **                                                                             **
  80.  *****************************************************************************/
  81.  
  82. EXPORT TQ3StyleObject Q3PickIDStyle_New(
  83.     unsigned long            id);
  84.     
  85. EXPORT TQ3Status Q3PickIDStyle_Submit(
  86.     unsigned long            id,
  87.     TQ3ViewObject            view);
  88.  
  89. EXPORT TQ3Status Q3PickIDStyle_Get(
  90.     TQ3StyleObject            pickIDObject,
  91.     unsigned long            *id);
  92.  
  93. EXPORT TQ3Status Q3PickIDStyle_Set(
  94.     TQ3StyleObject            pickIDObject,
  95.     unsigned long            id);
  96.     
  97.     
  98. /******************************************************************************
  99.  **                                                                             **
  100.  **                                Pick Parts                                     **
  101.  **                                                                             **
  102.  *****************************************************************************/
  103.  
  104. typedef enum TQ3PickPartsMasks {
  105.     kQ3PickPartsObject        = 0,
  106.     kQ3PickPartsMaskFace    = 1 << 0,
  107.     kQ3PickPartsMaskEdge    = 1 << 1,
  108.     kQ3PickPartsMaskVertex    = 1 << 2
  109. } TQ3PickPartsMasks;
  110.  
  111. typedef unsigned long TQ3PickParts;
  112.  
  113. EXPORT TQ3StyleObject Q3PickPartsStyle_New(
  114.     TQ3PickParts            parts);
  115.     
  116. EXPORT TQ3Status Q3PickPartsStyle_Submit(
  117.     TQ3PickParts            parts,
  118.     TQ3ViewObject            view);
  119.  
  120. EXPORT TQ3Status Q3PickPartsStyle_Get(
  121.     TQ3StyleObject            pickPartsObject,
  122.     TQ3PickParts            *parts);
  123.  
  124. EXPORT TQ3Status Q3PickPartsStyle_Set(
  125.     TQ3StyleObject            pickPartsObject,
  126.     TQ3PickParts            parts);
  127.  
  128.  
  129. /******************************************************************************
  130.  **                                                                             **
  131.  **                        Receive Shadows                                         **
  132.  **                                                                             **
  133.  *****************************************************************************/
  134.  
  135. EXPORT TQ3StyleObject Q3ReceiveShadowsStyle_New(
  136.     TQ3Boolean                receives);
  137.     
  138. EXPORT TQ3Status Q3ReceiveShadowsStyle_Submit(
  139.     TQ3Boolean                receives,
  140.     TQ3ViewObject            view);
  141.  
  142. EXPORT TQ3Status Q3ReceiveShadowsStyle_Get(
  143.     TQ3StyleObject            styleObject,
  144.     TQ3Boolean                *receives);
  145.  
  146. EXPORT TQ3Status Q3ReceiveShadowsStyle_Set(
  147.     TQ3StyleObject            styleObject,
  148.     TQ3Boolean                receives);
  149.  
  150.  
  151. /******************************************************************************
  152.  **                                                                             **
  153.  **                            Fill Styles                                         **
  154.  **                                                                             **
  155.  *****************************************************************************/
  156.  
  157. typedef enum TQ3FillStyle {
  158.     kQ3FillStyleFilled,
  159.     kQ3FillStyleEdges,
  160.     kQ3FillStylePoints
  161. } TQ3FillStyle;
  162.  
  163.  
  164. EXPORT TQ3StyleObject Q3FillStyle_New(
  165.     TQ3FillStyle             fillStyle);
  166.  
  167. EXPORT TQ3Status Q3FillStyle_Submit(
  168.     TQ3FillStyle             fillStyle,
  169.     TQ3ViewObject             view);
  170.  
  171. EXPORT TQ3Status Q3FillStyle_Get(
  172.     TQ3StyleObject            styleObject,
  173.     TQ3FillStyle            *fillStyle);
  174.  
  175. EXPORT TQ3Status Q3FillStyle_Set(
  176.     TQ3StyleObject            styleObject,
  177.     TQ3FillStyle            fillStyle);
  178.     
  179.     
  180. /******************************************************************************
  181.  **                                                                             **
  182.  **                            Backfacing Styles                                 **
  183.  **                                                                             **
  184.  *****************************************************************************/
  185.  
  186. typedef enum TQ3BackfacingStyle {
  187.     kQ3BackfacingStyleBoth,
  188.     kQ3BackfacingStyleRemove,
  189.     kQ3BackfacingStyleFlip
  190. } TQ3BackfacingStyle;
  191.  
  192. EXPORT TQ3StyleObject Q3BackfacingStyle_New(
  193.     TQ3BackfacingStyle        backfacingStyle);
  194.  
  195. EXPORT TQ3Status Q3BackfacingStyle_Submit(
  196.     TQ3BackfacingStyle        backfacingStyle,
  197.     TQ3ViewObject            view);
  198.  
  199. EXPORT TQ3Status Q3BackfacingStyle_Get(
  200.     TQ3StyleObject            backfacingObject,
  201.     TQ3BackfacingStyle        *backfacingStyle);
  202.  
  203. EXPORT TQ3Status Q3BackfacingStyle_Set(
  204.     TQ3StyleObject            backfacingObject,
  205.     TQ3BackfacingStyle        backfacingStyle);
  206.  
  207.  
  208. /******************************************************************************
  209.  **                                                                             **
  210.  **                            Interpolation Types                                 **
  211.  **                                                                             **
  212.  *****************************************************************************/
  213.  
  214. typedef enum TQ3InterpolationStyle {
  215.     kQ3InterpolationStyleNone,
  216.     kQ3InterpolationStyleVertex,
  217.     kQ3InterpolationStylePixel
  218. } TQ3InterpolationStyle;
  219.  
  220. EXPORT TQ3StyleObject Q3InterpolationStyle_New(
  221.     TQ3InterpolationStyle    interpolationStyle);
  222.  
  223. EXPORT TQ3Status Q3InterpolationStyle_Submit(
  224.     TQ3InterpolationStyle     interpolationStyle,
  225.     TQ3ViewObject            view);
  226.  
  227. EXPORT TQ3Status Q3InterpolationStyle_Get(
  228.     TQ3StyleObject            interpolationObject,
  229.     TQ3InterpolationStyle    *interpolationStyle);
  230.  
  231. EXPORT TQ3Status Q3InterpolationStyle_Set(
  232.     TQ3StyleObject            interpolationObject,
  233.     TQ3InterpolationStyle    interpolationStyle);
  234.  
  235.  
  236. /******************************************************************************
  237.  **                                                                             **
  238.  **                                Highlight Style                                 **
  239.  **                                                                             **
  240.  *****************************************************************************/
  241.  
  242. EXPORT TQ3StyleObject Q3HighlightStyle_New(
  243.     TQ3AttributeSet            highlightAttribute);
  244.     
  245. EXPORT TQ3Status Q3HighlightStyle_Submit(
  246.     TQ3AttributeSet            highlightAttribute,
  247.     TQ3ViewObject            view);
  248.  
  249. EXPORT TQ3Status Q3HighlightStyle_Get(
  250.     TQ3StyleObject            highlight,
  251.     TQ3AttributeSet            *highlightAttribute);
  252.  
  253. EXPORT TQ3Status Q3HighlightStyle_Set(
  254.     TQ3StyleObject            highlight,
  255.     TQ3AttributeSet            highlightAttribute);
  256.  
  257.  
  258. /******************************************************************************
  259.  **                                                                             **
  260.  **                            FrontFacing Direction Styles                     **
  261.  **                                                                             **
  262.  *****************************************************************************/
  263.  
  264. typedef enum TQ3OrientationStyle{
  265.     kQ3OrientationStyleCounterClockwise,
  266.     kQ3OrientationStyleClockwise
  267. } TQ3OrientationStyle;
  268.  
  269. EXPORT TQ3StyleObject Q3OrientationStyle_New(
  270.     TQ3OrientationStyle        frontFacingDirection);
  271.  
  272. EXPORT TQ3Status Q3OrientationStyle_Submit(
  273.     TQ3OrientationStyle        frontFacingDirection,
  274.     TQ3ViewObject            view);
  275.  
  276. EXPORT TQ3Status Q3OrientationStyle_Get(
  277.     TQ3StyleObject            frontFacingDirectionObject,
  278.     TQ3OrientationStyle        *frontFacingDirection);
  279.  
  280. EXPORT TQ3Status Q3OrientationStyle_Set(
  281.     TQ3StyleObject            frontFacingDirectionObject,
  282.     TQ3OrientationStyle        frontFacingDirection);
  283.  
  284.  
  285. #ifdef __cplusplus
  286. }
  287. #endif    /* __cplusplus */
  288.  
  289. #endif  /*  QD3DStyle_h  */
  290.